สรุปด้วย AI ในตัว

เผยแพร่: 11 พฤศจิกายน 2024 อัปเดตล่าสุด: 20 พฤษภาคม 2025

วิดีโออธิบาย เว็บ ส่วนขยาย สถานะ Chrome ความตั้งใจ
MDN เบื้องหลังธง Chrome 138 เบต้า เบื้องหลังธง Chrome 138 เบต้า ดู Intent to Ship

คุณสามารถช่วยให้ผู้ใช้สามารถสรุปบทความที่ยาว เอกสารที่ซับซ้อน หรือแม้แต่การสนทนาในแชทที่มีชีวิตชีวาให้เป็นสรุปที่กระชับและมีข้อมูลเชิงลึก

Summarizer API สามารถใช้สร้างสรุปประเภทต่างๆ ในความยาวและรูปแบบที่หลากหลาย เช่น ประโยค ย่อหน้า รายการหัวข้อย่อย และอื่นๆ เราเชื่อว่า API นี้จะมีประโยชน์ในสถานการณ์ต่อไปนี้

  • สรุปประเด็นสำคัญของบทความหรือการสนทนาทางแชท
  • แนะนำชื่อและหัวข้อสำหรับบทความ
  • การสร้างข้อมูลสรุปที่กระชับและให้ข้อมูลของข้อความที่มีความยาว
  • การสร้างตัวอย่างหนังสือโดยอิงจากรีวิวหนังสือ

เริ่มต้นใช้งาน

Summarizer API พร้อมใช้งานใน Chrome 138 เวอร์ชันเสถียร

เรียกใช้การตรวจหาฟีเจอร์เพื่อดูว่าเบราว์เซอร์รองรับ Summarizer API หรือไม่

if ('Summarizer' in self) {
  // The Summarizer API is supported.
}

ตรวจสอบข้อกำหนดด้านฮาร์ดแวร์

เครื่องมือตรวจหาภาษาและ Translator API ใช้งานได้ในเดสก์ท็อปใน Chrome เท่านั้น

Prompt API, Summarizer API, Writer API และ Rewriter API จะทำงานใน Chrome ได้เมื่อมีคุณสมบัติตรงตามเงื่อนไขต่อไปนี้

  • ระบบปฏิบัติการ: Windows 10 หรือ 11, macOS 13 ขึ้นไป (Ventura ขึ้นไป) หรือ Linux API ที่ Gemini Nano รองรับยังไม่รองรับ Chrome สำหรับ Android, iOS และ ChromeOS
  • พื้นที่เก็บข้อมูล: อย่างน้อย 22 GB ในวอลุ่มที่มีโปรไฟล์ Chrome
  • GPU: VRAM มากกว่า 4 GB เท่านั้น
  • เครือข่าย: อินเทอร์เน็ตแบบไม่จำกัดหรือการเชื่อมต่อแบบไม่จำกัดปริมาณ

ข้อกำหนดเหล่านี้มีไว้สำหรับคุณในกระบวนการพัฒนาและผู้ใช้ที่ทำงานกับฟีเจอร์ที่คุณสร้างขึ้น

การดาวน์โหลดโมเดล

Summarizer API ใช้โมเดลที่ผ่านการฝึกเพื่อสร้างสรุปที่มีคุณภาพสูง API นี้สร้างขึ้นใน Chrome และ Gemini Nano คือโมเดลที่ดาวน์โหลดเมื่อเว็บไซต์ใช้ API นี้เป็นครั้งแรก

หากต้องการตรวจสอบว่าโมเดลพร้อมใช้งานหรือไม่ ให้เรียกใช้ฟังก์ชันแบบแอซิงโครนัส Summarizer.availability() โดยจะแสดงผลพรอมต์ที่มีค่าต่อไปนี้

  • "unavailable" หมายความว่าการติดตั้งใช้งานไม่รองรับตัวเลือกที่ขอ
  • "downloadable" หมายความว่าการใช้งานรองรับตัวเลือกที่ขอ แต่ก่อนอื่นเบราว์เซอร์ต้องดาวน์โหลดบางอย่าง เช่น โมเดล (ในกรณีของ Chrome คือ Gemini Nano) หรือการปรับแต่งโมเดล
  • "downloading" หมายความว่าการติดตั้งใช้งานรองรับตัวเลือกที่ขอ แต่ต้องดาวน์โหลดที่อยู่ระหว่างดำเนินการให้เสร็จสิ้นก่อนจึงจะดำเนินการต่อได้
  • "available" หมายความว่าการติดตั้งใช้งานรองรับตัวเลือกที่ขอและเครื่องมือสรุปสามารถดําเนินการต่อได้

หากต้องการเรียกให้ดาวน์โหลดโมเดลและสร้างเครื่องมือสรุป ให้เรียกใช้ฟังก์ชันแบบอะซิงโครนัส Summarizer.create() หากการตอบกลับ availability() คือ downloadable หรือ downloading แนวทางปฏิบัติแนะนำคือให้ฟังการดาวน์โหลดเพื่อดูความคืบหน้า วิธีนี้จะช่วยให้คุณแจ้งให้ผู้ใช้ทราบและระบุว่าการดาวน์โหลดอาจใช้เวลาสักครู่จึงจะสรุปได้

const summarizer = await Summarizer.create({
  monitor(m) {
    m.addEventListener('downloadprogress', (e) => {
      console.log(`Downloaded ${e.loaded * 100}%`);
    });
  }
});

ฟังก์ชัน API

ฟังก์ชัน create() ช่วยให้คุณกําหนดค่าออบเจ็กต์สรุปใหม่ได้ตามต้องการ โดยจะใช้ออบเจ็กต์ options (ไม่บังคับ) ที่มีพารามิเตอร์ต่อไปนี้

  • sharedContext: บริบทเพิ่มเติมที่แชร์ซึ่งช่วยสรุปได้
  • type: ประเภทของข้อมูลสรุปซึ่งมีค่าที่อนุญาต ได้แก่ key-points (ค่าเริ่มต้น), tldr, teaser และ headline ดูรายละเอียดในตารางต่อไปนี้
  • format: รูปแบบของข้อมูลสรุปซึ่งมีค่าที่อนุญาตคือ markdown (ค่าเริ่มต้น) และ plain-text
  • length: ความยาวของการสรุป โดยมีค่าที่อนุญาตคือ short, medium (ค่าเริ่มต้น) และ long ความหมายของความยาวเหล่านี้จะแตกต่างกันไปโดยขึ้นอยู่กับ type ที่ขอ ตัวอย่างเช่น ในการใช้งานของ Chrome สรุปสั้นๆ ของประเด็นสำคัญประกอบด้วยหัวข้อย่อย 3 หัวข้อ และสรุปสั้นๆ คือประโยคเดียว

เมื่อตั้งค่าแล้ว คุณจะเปลี่ยนพารามิเตอร์ไม่ได้ สร้างออบเจ็กต์สรุปใหม่หากต้องการแก้ไขพารามิเตอร์

ตารางต่อไปนี้แสดงข้อมูลสรุปประเภทต่างๆ และความยาวที่สอดคล้องกัน ความยาวแสดงถึงค่าสูงสุดที่เป็นไปได้ เนื่องจากบางครั้งผลลัพธ์อาจสั้นกว่า

ประเภท ความหมาย ความยาว
"tldr" สรุปควรสั้นกระชับและตรงประเด็น โดยให้ภาพรวมคร่าวๆ ของอินพุต ซึ่งเหมาะสำหรับผู้อ่านที่มีเวลาไม่มาก
วิดีโอสั้น 1 ประโยค
ปานกลาง 3 ประโยค
ยาว 5 ประโยค
"teaser" ข้อมูลสรุปควรเน้นที่ส่วนที่น่าสนใจหรือน่าดึงดูดใจที่สุดของข้อมูล โดยออกแบบมาเพื่อดึงดูดให้ผู้อ่านอ่านต่อ
วิดีโอสั้น 1 ประโยค
ปานกลาง 3 ประโยค
ยาว 5 ประโยค
"key-points" สรุปควรดึงประเด็นที่สําคัญที่สุดจากอินพุตมาแสดงเป็นรายการหัวข้อ
วิดีโอสั้น หัวข้อย่อย 3 รายการ
ปานกลาง หัวข้อย่อย 5 รายการ
ยาว หัวข้อย่อย 7 รายการ
"headline" ข้อมูลสรุปควรระบุประเด็นหลักของอินพุตอย่างมีประสิทธิภาพในประโยคเดียวในรูปแบบของบรรทัดแรกของบทความ
วิดีโอสั้น 12 คำ
ปานกลาง 17 คำ
ยาว 22 คำ

ตัวอย่างต่อไปนี้แสดงวิธีเริ่มต้นใช้งานเครื่องมือสรุป

const options = {
  sharedContext: 'This is a scientific article',
  type: 'key-points',
  format: 'markdown',
  length: 'medium',
};

const availability = await Summarizer.availability();
let summarizer;
if (availability === 'unavailable') {
  // The Summarizer API isn't usable.
  return;
}
if (availability === 'available') {
  // The Summarizer API can be used immediately .
  summarizer = await Summarizer.create(options);
} else {
  // The Summarizer API can be used after the model is downloaded.
  summarizer = await Summarizer.create(options);
  summarizer.addEventListener('downloadprogress', (e) => {
    console.log(`Downloaded ${e.loaded * 100}%`);
  });
  await summarizer.ready;
}

เรียกใช้เครื่องมือสรุป

เรียกใช้เครื่องมือสรุปได้ 2 วิธี ได้แก่ สตรีมมิงและกลุ่ม (ไม่ใช่สตรีมมิง)

การสรุปแบบเป็นกลุ่ม

เมื่อใช้การสรุปแบบเป็นกลุ่ม โมเดลจะประมวลผลอินพุตทั้งหมดแล้วสร้างเอาต์พุต

หากต้องการดูข้อมูลสรุปของกลุ่ม ให้เรียกใช้ฟังก์ชัน summarize() โดยอาร์กิวเมนต์แรกคือข้อความที่คุณต้องการสรุป อาร์กิวเมนต์ที่ 2 (ไม่บังคับ) เป็นออบเจ็กต์ที่มีฟิลด์ context ช่องนี้ช่วยให้คุณเพิ่มรายละเอียดเบื้องหลังที่อาจช่วยปรับปรุงการสรุปได้

const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarize(longText, {
  context: 'This article is intended for a tech-savvy audience.',
});

การสรุปข้อมูลสตรีมมิง

สรุปแบบสตรีมมิงจะแสดงผลลัพธ์แบบเรียลไทม์ เอาต์พุตจะอัปเดตอย่างต่อเนื่องเมื่อมีการเพิ่มและปรับอินพุต หากต้องการดูสรุปสตรีมมิง ให้โทร summarizeStreaming() แทน summarize()

const longText = document.querySelector('article').innerHTML;
const summary = await summarizer.summarizeStreaming(longText, {
  context: 'This article is intended for junior developers.',
});

สาธิต

คุณสามารถลองใช้ Summarizer API ใน Summarizer API Playground

ความพยายามในการทำให้มาตรฐาน

เรากําลังพยายามทำให้ Summarizer API เป็นมาตรฐานเดียวกัน เพื่อให้ใช้งานร่วมกันได้กับเบราว์เซอร์ต่างๆ

ข้อเสนอ API ของเราได้รับการสนับสนุนจากชุมชนและได้ย้ายไปยังกลุ่มชุมชน Web Incubator ของ W3C เพื่อพูดคุยกันต่อ ทีม Chrome ได้ขอความคิดเห็นจากกลุ่มสถาปัตยกรรมทางเทคนิคของ W3C และสอบถามMozilla และ WebKit เกี่ยวกับจุดยืนด้านมาตรฐาน

มีส่วนร่วมในมาตรฐานโดยเข้าร่วมกลุ่มชุมชน Web Incubator

แชร์ความคิดเห็น

เราอยากเห็นสิ่งที่คุณสร้างด้วย Summarizer API แชร์เว็บไซต์และเว็บแอปพลิเคชันกับเราใน X, YouTube และ LinkedIn

หากต้องการแสดงความคิดเห็นเกี่ยวกับการใช้งาน Chrome ให้ส่งรายงานข้อบกพร่องหรือคำขอฟีเจอร์